import router from './index'
import store from '../store/index'
router.beforeEach((to, from, next) => {
  //无权限页面
  if(to.meta.publicPath === true){
    return next(true)
  }
  // 后续通过权限判断，以下为模拟场景，一般来说，是判断当前用户信息，然后跳转登录页面或者静默登录调用获取用户信息
  store.dispatch('getPermission').then(() => {
    next(true);
  }).catch(() => next('/login'));// 跳转登录页面（当前项目没有该页面，自行配置）
});

// 以下为另一场景权拦截，具体配置看项目需求咯
/*

// 权限拦截
let permissionUrls = {}
router.beforeEach((to, from, next) => {
  /!**
   * 路由没设置权限的默认放行
   * 已设置权限的判断是否自身有无权限再决定放行
   *!/
  if (to.meta.permissionUrl === undefined){
    next(true)
    return
  }
  let localData = window.sessionStorage.getItem('project1UserInfo')
  // 只请求一次
  if (Object.keys(permissionUrls).length === 0 && localData === null) {
    getAuthorityApi()
      .then(resp => {
        if (resp.data.code === 200) {
          let data = resp.data.data.permissionUrl,
            userInfo = resp.data.data.userInfo;
          for (let i = 0; i < data.length; i++) {
            permissionUrls[data[i].url] = data[i]
          }
          next(!!permissionUrls[to.meta.permissionUrl])
          // 建议key为 项目名称+userInfo
          window.sessionStorage.setItem('project1UserInfo',JSON.stringify({
            permissionUrls: permissionUrls,
            userInfo
          }))
        } else {
          next(false);
        }
      })
      .catch(() => {
        next(false);
      });
  }else {
    if (localData){
      localData = JSON.parse(localData)
      permissionUrls = localData.permissionUrls
    }
    next(!!permissionUrls[to.meta.permissionUrl])
  }
});*/
